package com.xk.school_device.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author xk
 * @since 2025-04-16
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "Devices对象", description = "")
public class Devices implements Serializable {

    private static final long serialVersionUID = 1L;

    private String deviceId;

    private String deviceName;

    private String model;

    @ApiModelProperty("设备分类")
    private String category;

    private String brand;

    @ApiModelProperty("序列号")
    private String serialNumber;

    private LocalDate purchaseDate;

    private BigDecimal purchaseAmount;

    private String supplier;

    @ApiModelProperty("保修期（月）")
    private Integer warrantyPeriod;

    private String status;

    @ApiModelProperty("所属部门")
    private String departmentId;

    private String location;

    private String imageUrl;

    private String remarks;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public LocalDate getPurchaseDate() {
        return purchaseDate;
    }

    public void setPurchaseDate(LocalDate purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    public BigDecimal getPurchaseAmount() {
        return purchaseAmount;
    }

    public void setPurchaseAmount(BigDecimal purchaseAmount) {
        this.purchaseAmount = purchaseAmount;
    }

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public Integer getWarrantyPeriod() {
        return warrantyPeriod;
    }

    public void setWarrantyPeriod(Integer warrantyPeriod) {
        this.warrantyPeriod = warrantyPeriod;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(String departmentId) {
        this.departmentId = departmentId;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Devices() {
    }

    public Devices(String deviceId, String deviceName, String model, String category, String brand, String serialNumber, LocalDate purchaseDate, BigDecimal purchaseAmount, String supplier, Integer warrantyPeriod, String status, String departmentId, String location, String imageUrl, String remarks, LocalDateTime createdAt, LocalDateTime updatedAt) {
        this.deviceId = deviceId;
        this.deviceName = deviceName;
        this.model = model;
        this.category = category;
        this.brand = brand;
        this.serialNumber = serialNumber;
        this.purchaseDate = purchaseDate;
        this.purchaseAmount = purchaseAmount;
        this.supplier = supplier;
        this.warrantyPeriod = warrantyPeriod;
        this.status = status;
        this.departmentId = departmentId;
        this.location = location;
        this.imageUrl = imageUrl;
        this.remarks = remarks;
        this.createdAt = createdAt;
        this.updatedAt = updatedAt;
    }
}
